<template>
  <div>
    <div class="header">
      <el-input v-model="username" placeholder="请输入用户名"></el-input>
      <el-input v-model="mobile" placeholder="请输入手机号"></el-input>
      <el-button type="primary" @click="search">
        <svg-icon icon-class="search" />
        查找
      </el-button>
      <el-button type="primary" @click="excelData">
        <svg-icon icon-class="form" />
        导出
      </el-button>
    </div>

    <div class="table">
      <el-table
        border
        :data="tableData"
        style="width: 100%"
        :default-sort="{ prop: 'id', order: 'descending' }"
      >
        <el-table-column prop="id" label="用户id" sortable width="180">
        </el-table-column>
        <el-table-column prop="username" label="用户名" width="180">
        </el-table-column>
        <el-table-column prop="mobile" label="手机号码"> </el-table-column>
        <el-table-column label="性别">
          <template slot-scope="scope">
            <span class="border">
              {{ scope.row.gender ? scope.row.gender : "未知" }}
            </span>
          </template>
        </el-table-column>
        <el-table-column label="生日"> </el-table-column>
        <el-table-column label="用户等级">
          <template slot-scope="scope">
            <span class="border">
              {{ scope.row.userLevel ? scope.row.userLevel : "普通用户" }}
            </span>
          </template>
        </el-table-column>
        <el-table-column label="状态">
          <template slot-scope="scope">
            <span class="border">
              {{ scope.row.status ? scope.row.status : "可用" }}
            </span>
          </template>
        </el-table-column>
      </el-table>
    </div>

    <div style="padding: 40px 0" class="footer">
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="page"
        :page-sizes="[10, 20, 30, 40]"
        :page-size="100"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"
      >
      </el-pagination>
    </div>
  </div>
</template>

<script>
import { getmyuser } from "@/api/user";
export default {
  name: "",
  props: [],
  data() {
    return {
      tableData: [],
      page: 1,
      total: 10,
      limit: 10,
      username: "", //搜索框搜索id
      mobile: "", //搜索框搜索手机号
    };
  },
  mounted() {
    this.getdata();
  },
  methods: {
    getdata() {
      let params = { 
        page: this.page, 
        limit: this.limit ,
        username:this.username,
        mobile:this.mobile
        }
      getmyuser(params).then((res) => {
        console.log(res);
        if (res.errno == 0) {
          this.tableData = res.data.items;
          this.total = res.data.total;
        }
      });
    },
    // 改变每一页多少条数据
    handleSizeChange(e) {
      this.limit = e;
      this.getdata();
    },
    //改变当前页数
    handleCurrentChange(e) {
      this.page = e;
      this.getdata();
    },
    //搜索
    search(){
      this.getdata();
    },
    excelData() {
      const headers = {
        用户id: "id",
        用户名: "username",
        手机号码: "mobile",
        性别:"gender",
        用户等级:"userLevel",
        状态:"status"
      };
      //懒加载
      import("@/vendor/Export2Excel").then((excel) => {
        const data = this.formatJson(headers, this.tableData);
        excel.export_json_to_excel({
          header: Object.keys(headers),
          data,
          filename: "会员管理",
        });
      });
    },
    // 该方法负责将数组转化成二维数组
    formatJson(headers, rows) {
      //首先遍历数组
      return rows.map((item) => {
        // item是对象  => 转化成只有值的数组 => 数组值的顺序依赖headers  {username: '张三'  }
        // Object.keys(headers)  => ["姓名", "手机号",...]
        return Object.keys(headers).map((key) => {
          if(key=="性别"){
            if(item[headers[key]]==0){
              return "未知"
            }else{
              return item[headers[key]]
            }
          }
          if(key=="状态"){
            if(item[headers[key]]==0){
              return "可用"
            }else{
              return "不可用"
            }
          }
          return item[headers[key]]; // 得到 ['张三'，’129‘，’dd‘,'dd']
        });
      });
    },
  },
  computed: {},
};
</script>

<style lang="less" scoped>
.header {
  padding: 15px;
  display: flex;
  flex-wrap: wrap;
  /deep/.el-input {
    width: 200px;
    margin-left: 15px;
    .el-input__inner {
      width: 200px;
    }
  }
  .el-button {
    margin-left: 15px;
  }
}
.table {
  padding: 15px;
  /deep/.cell {
    text-align: center;
    .border {
      display: inline-block;
      padding: 3px 8px;
      border: 1px solid #409efe;
      border-radius: 5px;
      color: #409efe;
      background-color: #e3eefb;
    }
  }
}
</style>
